home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / SAT / SATcollision][ ƒ / sMrEgghead][.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-21  |  1.4 KB  |  64 lines  |  [TEXT/KAHL]

  1. /* Player sprite for SATcollision][ */
  2.  
  3. /*unit sMrEgghead;*/
  4.  
  5. #include "SAT.h"
  6. #include "SATcollision][.h"
  7.  
  8.     FacePtr    mrEggheadFaces[4];
  9.     FacePtr    yuckFace;
  10.  
  11.  
  12.     void InitMrEgghead()
  13.     {
  14.         int i;
  15.         
  16.         for(i=0;i<=3;i++)
  17.             mrEggheadFaces[i] = GetFace(128 + i);
  18.         yuckFace = GetFace(134);
  19.     }
  20.  
  21.     pascal void SetupMrEgghead (SpritePtr me)
  22.     {
  23.         me->mode = 0;
  24.         me->speed.h = 1;
  25.         me->kind = 1; /*Friend kind*/
  26.         SetRect(&me->hotrect, 0, 0, 32, 32);
  27.     }
  28.  
  29.     pascal void HandleMrEgghead (SpritePtr me)
  30.     {
  31.         GetMouse(&me->position);
  32.  
  33. /*This time, let's make sure Mr Egghead is always visible!*/
  34.         if (me->position.v < 0)
  35.             me->position.v = 0;
  36.         if (me->position.h < 0)
  37.             me->position.h = 0;
  38.         if (me->position.v > offSizeV - 32)
  39.             me->position.v = offSizeV - 32;
  40.         if (me->position.h > offSizeH - 32)
  41.             me->position.h = offSizeH - 32;
  42.  
  43.  
  44.         if (me->mode < 0) /*we have taken a bite in a bad apple recently*/
  45.             {
  46.                 me->face = yuckFace;
  47.                 me->mode = me->mode + 1;
  48.             }
  49.         else if (me->mode == 0) /*nothing special recently*/
  50.             me->face = mrEggheadFaces[2];
  51.         else
  52.             { /*ate an apple recently - chew!*/
  53.                 me->mode = me->mode - 1;
  54.                 me->face = mrEggheadFaces[me->mode % 4];
  55.             };
  56.     }
  57.  
  58.     pascal void HitMrEgghead (SpritePtr me, SpritePtr him)
  59.     {
  60. /* Hit something! We can take whatever action we need here, but in this case,*/
  61. /* we let sApple decide. (We could have omitted this function altogether */
  62. /* and passed nil as hittask to NewSprite.)*/
  63.     }
  64.